package cn.iocoder.yudao.module.promotion.controller.admin.yearcardconfig.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 年卡配置新增/修改 Request VO")
@Data
public class YearCardConfigSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "386")
    private Long id;

    @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "标题不能为空")
    private String title;

    @Schema(description = "头图", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "头图不能为空")
    private List<String> headerPicUrls;

    @Schema(description = "详情", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "详情不能为空")
    private String content;

    @Schema(description = "原价", requiredMode = Schema.RequiredMode.REQUIRED, example = "23784")
    @NotNull(message = "原价不能为空")
    private BigDecimal originalPrice;

    @Schema(description = "是否有促销", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否有促销不能为空")
    private Boolean havePromotion;

    @Schema(description = "促销价", example = "3326")
    private BigDecimal promotionPrice;

    @Schema(description = "投放类型(1:总是显示;2:按日期)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "投放类型(1:总是显示;2:按日期)不能为空")
    private Integer putType;

    @Schema(description = "投放日期开始")
    private LocalDateTime putTimeStart;

    @Schema(description = "投放日期结束")
    private LocalDateTime putTimeEnd;

    @Schema(description = "用户协议")
    private String userAgreement;

}